package com.yeti.repository;

import java.io.Serializable;
import java.util.List;

import com.yeti.domain.Cliente;
import com.yeti.domain.Lista;

public interface ListaDAO extends Serializable{
	  
	/**
	 * Metodo que actualiza la informacion de una lista de la base de datos.
	 * 
	 * @param l: Es la lista a actualizar.
	 * @return devuelve true si la operacion se produce correctamente o false en caso contrario.
	 */
    public boolean updateLista(Lista l);
    
    /**
	 * Metodo que agrega una lista en la base de datos.
	 * 
	 * @param l: Es la lista a agregar.
	 * @return devuelve true si la operacion se produce correctamente o false en caso contrario.
	 */
    public boolean addLista(Lista l);
    
    /**
	 * Metodo que elimina a una lista de la base de datos.
	 * 
	 * @param l: Es la lista a eliminar.
	 * @return devuelve true si la operacion se produce correctamente o false en caso contrario.
	 */
    public boolean remLista(Lista l);

    /**
	 * Metodo que busca una lista por id.
	 * 
	 * @param id: es el id de la lista.
	 * @return devuelve la lista si la encuentra o null en caso contrario.
	 */
	public Lista getLista(int id);
	
	/**
	 * Metodo que devuelve todas las listas de un usuario.
	 * 
	 * @param username: Es el nombre de usuario por el que se buscaran las listas.
	 * @return devuelve al cliente si lo encuentra o null en caso contrario.
	 */
	public List<Lista> getListas(String username);
}
